Skip to main content

Migration Guide from MAX to XMediator

This guide will help you migrate your Unity project from AppLovin MAX SDK to XMediator SDK for Banner, Interstitial, and Rewarded ads. It covers API method comparisons, key differences, and event/listener mappings for each ad format.

For official documentation:


API Method Comparison

OperationMAXXMediator
Create BannerMaxSdk.CreateBanner("<ad-unit-id>", MaxSdkBase.BannerPosition.BottomCenter);XMediatorAds.Banner.Create("<placement-id>", size, position)
Show BannerMaxSdk.ShowBanner("<ad-unit-id>");XMediatorAds.Banner.Show("<placement-id>")
Hide BannerMaxSdk.HideBanner("<ad-unit-id>");XMediatorAds.Banner.Hide("<placement-id>")
Destroy BannerMaxSdk.DestroyBanner("<ad-unit-id>");Remove listener or view
Set Ad Space(Not available)XMediatorAds.Banner.SetAdSpace("<placement-id>", "banner-ad-space")
Set ListenerMaxSdkCallbacks.Banner.OnAdLoadedEvent += ...XMediatorAds.Banner.OnLoaded += (placementId, result) => {}

Key Differences

FeatureMAXXMediator SDK
Ad Unit IDYesPlacement ID
Ad SpaceNoYes (for analytics/tracking)
Auto RefreshYes (configurable)Yes (admin tool, default enabled)
Auto RetryNo (manual)Yes (exponential backoff)
Manual RefreshYesYes
Destroy/RemoveExplicitRemove listener or view

Callback Comparison

EventMAXXMediator
LoadedMaxSdkCallbacks.Banner.OnAdLoadedEvent += OnBannerAdLoadedEvent;OnLoaded (placementId, result) => {}
Load FailedMaxSdkCallbacks.Banner.OnAdLoadFailedEvent += OnBannerAdLoadFailedEvent;No explicit, handled by SDK
ClickedMaxSdkCallbacks.Banner.OnAdClickedEvent += OnBannerAdClickedEvent;OnClicked += placementId => {}
DisplayedMaxSdkCallbacks.Banner.OnAdDisplayedEvent += OnBannerAdDisplayedEvent;OnImpression += (placementId, impressionData) => {}
HiddenMaxSdkCallbacks.Banner.OnAdHiddenEvent += OnBannerAdHiddenEvent;OnHide/Hide

For official documentation:


Interstitial Ads

API Method Comparison

OperationMAXXMediator
Load InterstitialMaxSdk.LoadInterstitial("<ad-unit-id>");XMediatorAds.Interstitial.Load("<placement-id>")
Show InterstitialMaxSdk.ShowInterstitial("<ad-unit-id>");XMediatorAds.Interstitial.ShowFromAdSpace("<placement-id>") or ShowFromAdSpace("<placement-id>", "interstitial-ad-space")
Is ReadyMaxSdk.IsInterstitialReady("<ad-unit-id>");XMediatorAds.Interstitial.IsReady() or IsReady("<placement-id>")
Set ListenerMaxSdkCallbacks.Interstitial.OnAdLoadedEvent += ...XMediatorAds.Interstitial.OnLoaded += (placementId, result) => {}

Key Differences

FeatureMAXXMediator SDK
Auto LoadNoYes (after dismiss/fail)
Auto RetryNo (manual)Yes (exponential backoff)
Ad SpaceNoYes
Destroy/RemoveExplicitRemove listener

Callback Comparison

EventMAX (MaxSdkCallbacks.Interstitial)XMediator (XMediatorAds.Interstitial)
LoadedMaxSdkCallbacks.Interstitial.OnAdLoadedEvent += OnInterstitialAdLoadedEvent;XMediatorAds.Interstitial.OnLoaded += (placementId, result) => {}
Load FailedMaxSdkCallbacks.Interstitial.OnAdLoadFailedEvent += OnInterstitialAdLoadFailedEvent;No explicit, handled by SDK
DisplayedMaxSdkCallbacks.Interstitial.OnAdDisplayedEvent += OnInterstitialAdDisplayedEvent;XMediatorAds.Interstitial.OnShowed += (placementId) => {}
ClickedMaxSdkCallbacks.Interstitial.OnAdClickedEvent += OnInterstitialAdClickedEvent;XMediatorAds.Interstitial.OnClicked += placementId => {}
HiddenMaxSdkCallbacks.Interstitial.OnAdHiddenEvent += OnInterstitialAdHiddenEvent;XMediatorAds.Interstitial.OnDismissed += placementId => {}
Failed to ShowMaxSdkCallbacks.Interstitial.OnAdDisplayFailedEvent += OnInterstitialAdDisplayFailedEvent;XMediatorAds.Interstitial.OnFailedToShow += (placementId, error) => {}
ImpressionOnAdDisplayedEventOnImpression += (placementId, impressionData) =>

For official documentation:


Rewarded Ads

API Method Comparison

OperationMAXXMediator
Load RewardedMaxSdk.LoadRewardedAd("<ad-unit-id>");XMediatorAds.Rewarded.Load(placementId)
Show RewardedMaxSdk.ShowRewardedAd("<ad-unit-id>");XMediatorAds.Rewarded.Show(placementId) or ShowFromAdSpace(placementId, "rewarded-ad-space")
Is ReadyMaxSdk.IsRewardedAdReady("<ad-unit-id>");XMediatorAds.Rewarded.IsReady() or IsReady(placementId)
Set ListenerMaxSdkCallbacks.Rewarded.OnAdLoadedEvent += ...XMediatorAds.Rewarded.OnLoaded += (placementId, result) => {}

Key Differences

FeatureMAXXMediator
Reward CallbackOnAdReceivedRewardEventOnEarnedReward
Auto LoadNoYes (after dismiss/fail)
Auto RetryNo (manual)Yes (exponential backoff)
Ad SpaceNoYes
Destroy/RemoveExplicitRemove listener

Callback Comparison

EventMAXXMediator
LoadedMaxSdkCallbacks.Rewarded.OnAdLoadedEvent += OnRewardedAdLoadedEvent;XMediatorAds.Rewarded.OnLoaded += (placementId, result) => {}
Load FailedMaxSdkCallbacks.Rewarded.OnAdLoadFailedEvent += OnRewardedAdLoadFailedEvent;No explicit, handled by SDK
DisplayedMaxSdkCallbacks.Rewarded.OnAdDisplayedEvent += OnRewardedAdDisplayedEvent;XMediatorAds.Rewarded.OnShowed += placementId => {}
ClickedMaxSdkCallbacks.Rewarded.OnAdClickedEvent += OnRewardedAdClickedEvent;XMediatorAds.Rewarded.OnClicked += (placementId) => {}
HiddenMaxSdkCallbacks.Rewarded.OnAdHiddenEvent += OnRewardedAdHiddenEvent;XMediatorAds.Rewarded.OnDismissed += (placementId) => {}
Failed to ShowMaxSdkCallbacks.Rewarded.OnAdDisplayFailedEvent += OnRewardedAdDisplayFailedEvent;XMediatorAds.Rewarded.OnFailedToShow += (placementId, error) => {}
ImpressionMaxSdkCallbacks.Rewarded.OnAdDisplayedEvent += OnRewardedAdDisplayedEvent;XMediatorAds.Rewarded.OnImpression += (placementId, impressionData) => {}
RewardedMaxSdkCallbacks.Rewarded.OnAdReceivedRewardEvent += OnRewardedAdReceivedRewardEvent;XMediatorAds.Rewarded.OnEarnedReward += placementId => {}

For official documentation:


Additional Notes

  • XMediator SDK auto-loads and retries ads after dismiss/fail (no manual retry logic needed).
  • Ad Space is available for analytics/tracking in XMediator.
  • Remove listeners to clean up ads in XMediator; explicit destroy is not needed.
  • Use the official documentation for the latest updates and best practices.